-- 活动表
CREATE TABLE `activity` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(50) NOT NULL COMMENT '活动的名称',
  `description` varchar(100) NOT NULL COMMENT '活动的描述',
  `icon_name` varchar(10) NOT NULL COMMENT '活动图标的文字',
  `icon_color` varchar(10) NOT NULL COMMENT '活动图标的颜色',
  `code` varchar(50) NOT NULL COMMENT '逻辑code',
  `is_share` int(1) NOT NULL COMMENT '是否和其他活动共享',
  `priority` int(11) NOT NULL COMMENT '活动的优先级',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  `updated_at` int(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
);


-- 地址表
CREATE TABLE `address` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `summary` varchar(50) NOT NULL COMMENT '地址摘要',
  `detail` varchar(200) NOT NULL COMMENT '地址详情',
  `phone` varchar(20) NOT NULL COMMENT '联系电话',
  `name` varchar(20) NOT NULL COMMENT '联系人',
  `gender` int(1) NOT NULL COMMENT '性别，0=男，1=女',
  `user_id` int(10) unsigned NOT NULL COMMENT '用户ID',
  `created_at` bigint(20) NOT NULL COMMENT '创建时间',
  `updated_at` bigint(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);

-- 管理员表
CREATE TABLE `admin` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `business_id` int(11) NOT NULL COMMENT '管理的商铺id',
  `user_name` varchar(20) NOT NULL COMMENT '用户名',
  `real_name` varchar(20) NOT NULL COMMENT '真实姓名',
  `identity_num` varchar(20) NOT NULL COMMENT '身份证号',
  `auth_key` varchar(32) NOT NULL,
  `password_hash` varchar(255) NOT NULL COMMENT '密码',
  `access_token` varchar(255) DEFAULT NULL,
  `gender` enum('male','woman','other') NOT NULL DEFAULT 'male' COMMENT '性别',
  `email` varchar(255) NOT NULL DEFAULT '' COMMENT '邮箱',
  `phone` varchar(20) NOT NULL DEFAULT '' COMMENT '手机',
  `status` enum('active','blocked') NOT NULL DEFAULT 'active' COMMENT '状态',
  `created_at` bigint(20) unsigned NOT NULL COMMENT '创建时间',
  `updated_at` bigint(20) unsigned NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `status` (`status`)
);

-- 商家表
CREATE TABLE `business` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(50) NOT NULL COMMENT '商户名称',
  `phone` varchar(20) NOT NULL COMMENT '商户电话',
  `address` varchar(100) DEFAULT NULL COMMENT '商户地址',
  `pic_url` varchar(200) DEFAULT '' COMMENT '商户的logo',
  `status` int(1) DEFAULT '0' COMMENT '0=休息中，1=营业中',
  `opening_time` text COMMENT '营业时间',
  `shipping_fee` double DEFAULT '0' COMMENT '配送费',
  `package_fee` double DEFAULT '0' COMMENT '包装费',
  `min_price` double DEFAULT '0' COMMENT '起送价',
  `shipping_time` varchar(20) DEFAULT '0' COMMENT '配送时间',
  `month_sales` int(11) DEFAULT '0' COMMENT '月销量',
  `bulletin` varchar(300) DEFAULT '' COMMENT '商户公告',
  `category` int(11) DEFAULT '1' COMMENT '商户类型：1=餐馆，2=茶饮店，3=便利店',
  `booking_times` text COMMENT '可预订的时间',
  `updated_at` int(20) DEFAULT NULL COMMENT '修改时间',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

-- 商家活动
CREATE TABLE `business_activity` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `business_id` int(11) NOT NULL COMMENT '商户ID',
  `activity_id` int(11) NOT NULL COMMENT '活动ID',
  `attribute` varchar(100) NOT NULL COMMENT '解析description所用的json数据',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  `updated_at` int(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

-- 商家场景
CREATE TABLE `business_scene` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `business_id` int(11) NOT NULL,
  `type` int(1) NOT NULL COMMENT '实景类别，1=门面、2=大堂、3=后厨',
  `original_name` varchar(100) NOT NULL,
  `thumb_name` varchar(100) NOT NULL,
  `rank` int(11) NOT NULL,
  `created_at` int(20) DEFAULT NULL,
  `updated_at` int(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
);
-- 购物车
CREATE TABLE `cart` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '购物车ID',
  `business_id` int(11) NOT NULL COMMENT '商铺ID',
  `last_address_id` int(11) NOT NULL COMMENT '地址ID',
  `pay_method` enum('0','1') NOT NULL COMMENT '支付方式',
  `origin_price` double NOT NULL COMMENT '原价',
  `discount_price` double NOT NULL COMMENT '优惠价',
  `total_price` double NOT NULL COMMENT '总价',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);
-- 购物车优惠
CREATE TABLE `cart_discount` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `cart_id` int(11) NOT NULL COMMENT '购物车ID',
  `activity_id` int(11) NOT NULL COMMENT '活动ID',
  `name` varchar(50) NOT NULL COMMENT '活动的名称',
  `price` double NOT NULL COMMENT '优惠的价格',
  `description` varchar(100) NOT NULL COMMENT '活动的描述',
  `icon_name` varchar(10) NOT NULL COMMENT '活动图标的文字',
  `icon_color` varchar(10) NOT NULL COMMENT '活动图标的颜色',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);
-- 购物车描述
CREATE TABLE `cart_extra` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `cart_id` int(11) NOT NULL COMMENT '购物车ID',
  `name` varchar(50) NOT NULL COMMENT '名称',
  `description` varchar(100) DEFAULT NULL COMMENT '描述',
  `price` double NOT NULL COMMENT '价格',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);

-- 购物车商品
CREATE TABLE `cart_product` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `cart_id` int(11) NOT NULL COMMENT '购物车ID',
  `product_id` int(10) unsigned NOT NULL COMMENT '商品ID',
  `name` varchar(50) NOT NULL COMMENT '商品名称',
  `quantity` int(11) NOT NULL COMMENT '商品数量',
  `unit_price` double NOT NULL COMMENT '商品单价',
  `total_price` double NOT NULL COMMENT '商品总价',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);

-- 分类表
CREATE TABLE `category` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `business_id` int(11) NOT NULL COMMENT '商家ID',
  `name` varchar(30) NOT NULL COMMENT '名称',
  `description` varchar(50) NOT NULL DEFAULT '' COMMENT '描述',
  `icon_url` varchar(200) NOT NULL DEFAULT '' COMMENT '图标url',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL,
  PRIMARY KEY (`id`)
) ;

-- 验证码表
CREATE TABLE `code` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `action_sign` varchar(20) NOT NULL COMMENT '操作签名',
  `mobile` varchar(20) NOT NULL COMMENT '手机号',
  `code` varchar(10) NOT NULL COMMENT '验证码',
  `valid_second` int(11) NOT NULL COMMENT '有效时间，单位：秒',
  `created_at` bigint(20) NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ;



-- 喜爱店铺表
CREATE TABLE `favorite` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `business_id` int(11) NOT NULL COMMENT '商铺ID',
  `created_at` int(11) DEFAULT NULL COMMENT '添加时间',
  `updated_at` int(11) DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);

-- 反馈表
CREATE TABLE `feedback` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `content` text NOT NULL COMMENT '反馈内容',
  `contact_way` varchar(30) DEFAULT NULL COMMENT '联系方式',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  `updated_at` int(20) DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);

-- 订单表
CREATE TABLE `order` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '订单ID',
  `cart_id` int(11) NOT NULL COMMENT '购物车ID',
  `business_id` int(11) NOT NULL COMMENT '商铺ID',
  `user_id` int(11) unsigned NOT NULL COMMENT '用户ID',
  `order_num` varchar(50) NOT NULL COMMENT '订单编号',
  `status` int(1) NOT NULL COMMENT '订单状态,-1=待提交,0=待支付,1=待接单，2=待发货，3=待送达，4=待确认，5=已完成',
  `origin_price` double NOT NULL COMMENT '商品原价',
  `discount_price` double NOT NULL COMMENT '优惠价格',
  `total_price` double NOT NULL COMMENT '合计价格',
  `consignee` varchar(20) NOT NULL COMMENT '联系人',
  `phone` varchar(20) NOT NULL COMMENT '联系电话',
  `address` varchar(100) NOT NULL COMMENT '收货地址',
  `pay_method` enum('0','1') NOT NULL COMMENT '支付方式',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `booked_at` varchar(20) DEFAULT NULL COMMENT '预订时间',
  `created_at` int(20) NOT NULL COMMENT '下单时间',
  `updated_at` int(20) NOT NULL,
  PRIMARY KEY (`id`)
);


-- 支付平台
CREATE TABLE `payment_platform` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(20) NOT NULL COMMENT '平台名称',
  `icon` varchar(100) NOT NULL COMMENT '平台图标',
  `updated_at` int(20) DEFAULT NULL COMMENT '更新时间',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ;

-- ----------------------------
--  Records of `payment_platform`
-- ----------------------------
BEGIN;
INSERT INTO `payment_platform` VALUES ('1', '支付宝', 'http://ocd605cmo.bkt.clouddn.com/ali_pay.png', '1481901232', '1481901232'), ('2', '微信', 'http://ocd605cmo.bkt.clouddn.com/wechat_pay.png', '1481901433', '1481901433'), ('3', 'QQ', 'http://ocd605cmo.bkt.clouddn.com/qq_pay.png', '1481901631', '1481901631');
COMMIT;

-- 支付记录
CREATE TABLE `payment_record` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `order_id` int(11) NOT NULL COMMENT '订单ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `platform_id` int(11) NOT NULL COMMENT '支付平台ID',
  `amount` double NOT NULL COMMENT '支付金额',
  `updated_at` int(20) DEFAULT NULL COMMENT '修改时间',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

-- 产品名称
CREATE TABLE `product` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `business_id` int(11) NOT NULL COMMENT '商家ID',
  `category_id` int(11) NOT NULL COMMENT '分类ID',
  `name` varchar(100) NOT NULL COMMENT '名称',
  `price` double NOT NULL DEFAULT '0' COMMENT '单价',
  `description` text COMMENT '描述信息',
  `image_path` varchar(200) DEFAULT '' COMMENT '图片',
  `month_sales` int(11) DEFAULT '0' COMMENT '月销量',
  `rate` int(11) DEFAULT '0' COMMENT '评分',
  `left_num` int(11) NOT NULL COMMENT '剩余的数量',
  `created_at` int(20) NOT NULL COMMENT '创建时间',
  `updated_at` int(20) NOT NULL,
  PRIMARY KEY (`id`)
);

-- 用户表
CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(20) DEFAULT '' COMMENT '用户名',
  `nickname` varchar(20) NOT NULL COMMENT '昵称',
  `access_token` varchar(255) DEFAULT NULL COMMENT '身份标识',
  `password_hash` varchar(255) NOT NULL COMMENT '密码hash 值',
  `mobile` varchar(20) NOT NULL COMMENT '手机号',
  `email` varchar(50) DEFAULT '' COMMENT '邮箱',
  `avatar_url` varchar(200) DEFAULT '' COMMENT '头像URL',
  `created_at` int(20) DEFAULT NULL COMMENT '创建时间',
  `updated_at` int(20) DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
);
